package com.itany.corejava.code10_io.字节流;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * @author MissChen
 * @date 2024年03月11日 9:09
 */
public class Test03_字节数组输入输出流 {
    public static void main(String[] args) {
        // test01();
        test02();
    }

    public static void test01() {
        byte[] data = "Hello World".getBytes();
        try {
            InputStream in = new ByteArrayInputStream(data);
            byte[] b = new byte[1024];
            int i = -1;
            // i=in.read();
            // System.out.println((char)i);

            while ((i = in.read(b)) != -1) {
                System.out.println(i);
                System.out.println(new String(b, 0, i));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void test02()  {
        try {
            ByteArrayOutputStream out=new ByteArrayOutputStream();
            //将数据写入到内置的字节数组中
            //将数组写入到缓存取中
            out.write("Hello World".getBytes());

            //从缓存取取数据
            //使用平台默认的字符集，通过解码字节将缓存内容转换为字符串
            System.out.println(out.toString());


            //获取内置的字节数组的数据
            //在内存中创建一个新的字节数组空间，并且缓存区的有效内容已经复制到该数组中取
            // byte[] data=out.toByteArray();

            //从内存中取数据
            // System.out.println(new String(data));


        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}
